node js [Node JS] socket.io / jwt authentication / 채팅 회원정보 가져오기 기존에 MongoDB를 이용해 회원가입후 로그인을 하면 회원정보를 바탕으로한 채팅 구현. user의 메시지 라고 상단에 나타남 유저 아이디가 다른 클라이언트에게 나타남 ▼전체 코드▼ ▼server.js▼ ▼chat.ejs▼ ▼chat.html▼ 위의 홈 화면에서 Node JS: Messenger로 들어가면 로그인 되어있는 아이디를 기반으로 웹 채팅을 구현했다. 로그인은 저번에 만든 Mongo... node jsJWTauthenticationsocket.ioJWT [Node JS] 자동완성 구현 • 클라이언트 측에서 검색박스에 키보드 타이핑을 할때마다 텍스트값이 ajax통신을 이용해 서버로 GET요청을 타고 들어간다. 서버에서 파이썬 함수 호출 • 서버의 해당 미들웨어에선 미리 만들어둔 파이썬 스크립트가 인자로 전달받은 텍스트값과 sqlite로 만들어둔 DB와 비교해 일치하는지 확인 후 일치하는 값 모두를 리턴해준다. • 파이썬 리턴이 완료되면 미들웨어에서 마지막으로 전달받은 리턴값... ajaxexpresskeystrokepre-populatenode jsajax [Node JS] 웹 채팅 / socket.io 구현 Node JS와 socket.io를 이용해 웹 채팅을 구현했다. 서버에서 나머지 클라이언트1을 제외한 나머지 클라이언트에 채팅 내용을 보내준다. ▼chat.html▼ http://localhost:8080/chat경로에서 웹 채팅을 구현했다. 채팅 화면은 아래와 같다. npm을 통해서 socket.io모듈을 설치해준다. 그 후 express와 socket.io를 이용해 기본적인 서버를 만들어... node jssocket.ionode js [Node JS] express tutorial / 시작하기 • Node JS Node JS란 JavaScript의 runtime으로 자바스크립트가 돌아가는 환경을 말하며 웹 브라우저 외의 영역인 서버측에서 자바스크립트 언어를 사용 할 수 있게 해준다. • V8 여기서 크롬 브라우저의 V8 엔진이 Node JS에 들어가있고, 엔진의 역할은 자바스크립트 언어를 기계어로 해석하는 역할을 한다. • express Node JS의 express라는 frame... expressnode jsexpress [Node JS] 로그인 회원가입 로그아웃 구현 #4 / 로그아웃 / 쿠키 토큰 삭제 JWT를 이용한 로그인까지 구현이 되었다면 로그아웃은 쉽게 구현할 수 있다. 쿠키를 삭제해 주면 브라우저에 토큰이 사라지므로 더이상 서버에서 유저를 확인할 방법이 없어진다. 로그인이 된 경우는 ejs파일에서만 다루므로 ejs파일에 아래처럼 로그아웃 버튼을 만든다. onclick으로 signOut()함수를 실행하게 만들어준다. 함수의 내용은 아래와 같다. 별거 없이 그냥 해당 미들웨어를 호출한... JWTajaxnode jscookiesJWT TDD(test driven development) 저는 코드로부터 예상 혹은 기대되는 내용을 테스트코드에 규약처럼 작성하여 개발코드를 작성하는 과정이 규약에 어긋나지 않도록 함과 동시에 각 라우터 마다의 api 호출을 통한 테스트 과정을 생략하기 위해 사용하는 것으로 받아들였습니다. 이 때 검사를 위해 사용되는 모듈이 크게 두 가지, assert 와 should가 있습니다. 테스트 코드 작성에서는 웬만하면 should를 사용하는 것이 좋다고... TDDnode jsTDD 기타 현업 예를들어 dynamoDB에 데이터를 추가, 삭제, 편집, 쿼리, 읽기 등의 작업을 하고 싶다면(자세한 파일 구조와 로직은 적을 수 없다. 클라이언트의 요청은 백엔드 서버 → 저장소(DB 등) 요청으로 이어지는데 실제 DB까지 방문 후 데이터를 긁어와 클라이언트에게 내려주는 과정은 시간상 비효율적. CPU는 기본적으로 메모리에 저장된 데이터를 가져와 일을 처리하는데 이 때 CPU - 메모리(저... servernode jsnode js [Node JS] #2. Make Server 항상 켜져 있는 인터넷과 연결 되어있는 컴퓨터 Request 를 listening Ex) 카톡 메시지, 영상 클릭, URL 방문 등 외부 접속 listen CallBack: 서버가 시작할 때 작동하는 함수 Port: 컴퓨터의 문이나 창문 같은 것 유저가 서버에 접근하는 법: localhost(port-4000) GET: HTTP method /: root Request: 유저의 행동에 브라우... node jsnode js Mocha and Chai 테스트 관련 패키지는 개발할 때만 필요하므로 --save-dev 옵션을 사용한다. npm i axios npm i --save-dev mocha chai nyc sinon sinon-chai mocha는 테스트 실행해주는 패키지다 chai는 assertion 패키지다 nyc는 코드 커버리지를 시각적으로 보여주는 패키지다 axios는 promise 기반 HTTP client다. sinon-ch... testTDDmochabddaxioschainode jsnycTDD [Node JS] # File Upload Html multer 적용 Middleware 정의 - router에서 middleware 사용: html에서 받아온 file을 middleware에서 정한 설정에 따라 uploads 폴더에 저장한 후 다음 middleware로 file 정보를 전달 (req.file 이용) DB 및 세션에 저장 Static files serving (img 파일 등을 브라우저에 노출) ++) 문제 – 서버에... node jsnode js [Node JS] #5.2 Database model을 만드는 이유 mongoose에게 data가 어떻게 생겼는지 전달해야함. mongoose는 그 틀을 바탕으로 object의 틀을 강제함. model은 object의 model이 됨. shape는 보통 스키마라고 부름. 사용법: 스키마 정의 - mongoose.model 정의, export-import, CRUD = create, read, update, delete 데이터를 생성하... node jsnode js 10월 21일 TIL JavaScript가 브라우저가 아닌곳에서 실행될 수 있으니, 이제 우리는 JavaScript를 이용해서 웹페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있습니다. 이제 우리는 우리가 쓴 JavaScript 코드를 브라우저에서 실행시킬수도 있고, node.js라는 환경에서 실행시킬수도 있습니다.HTML <script> 태그 내에 JavaScript 코드를 작성한다면 우리가 작성한 ... nvmnode jspackge.jsonTILTIL
[Node JS] socket.io / jwt authentication / 채팅 회원정보 가져오기 기존에 MongoDB를 이용해 회원가입후 로그인을 하면 회원정보를 바탕으로한 채팅 구현. user의 메시지 라고 상단에 나타남 유저 아이디가 다른 클라이언트에게 나타남 ▼전체 코드▼ ▼server.js▼ ▼chat.ejs▼ ▼chat.html▼ 위의 홈 화면에서 Node JS: Messenger로 들어가면 로그인 되어있는 아이디를 기반으로 웹 채팅을 구현했다. 로그인은 저번에 만든 Mongo... node jsJWTauthenticationsocket.ioJWT [Node JS] 자동완성 구현 • 클라이언트 측에서 검색박스에 키보드 타이핑을 할때마다 텍스트값이 ajax통신을 이용해 서버로 GET요청을 타고 들어간다. 서버에서 파이썬 함수 호출 • 서버의 해당 미들웨어에선 미리 만들어둔 파이썬 스크립트가 인자로 전달받은 텍스트값과 sqlite로 만들어둔 DB와 비교해 일치하는지 확인 후 일치하는 값 모두를 리턴해준다. • 파이썬 리턴이 완료되면 미들웨어에서 마지막으로 전달받은 리턴값... ajaxexpresskeystrokepre-populatenode jsajax [Node JS] 웹 채팅 / socket.io 구현 Node JS와 socket.io를 이용해 웹 채팅을 구현했다. 서버에서 나머지 클라이언트1을 제외한 나머지 클라이언트에 채팅 내용을 보내준다. ▼chat.html▼ http://localhost:8080/chat경로에서 웹 채팅을 구현했다. 채팅 화면은 아래와 같다. npm을 통해서 socket.io모듈을 설치해준다. 그 후 express와 socket.io를 이용해 기본적인 서버를 만들어... node jssocket.ionode js [Node JS] express tutorial / 시작하기 • Node JS Node JS란 JavaScript의 runtime으로 자바스크립트가 돌아가는 환경을 말하며 웹 브라우저 외의 영역인 서버측에서 자바스크립트 언어를 사용 할 수 있게 해준다. • V8 여기서 크롬 브라우저의 V8 엔진이 Node JS에 들어가있고, 엔진의 역할은 자바스크립트 언어를 기계어로 해석하는 역할을 한다. • express Node JS의 express라는 frame... expressnode jsexpress [Node JS] 로그인 회원가입 로그아웃 구현 #4 / 로그아웃 / 쿠키 토큰 삭제 JWT를 이용한 로그인까지 구현이 되었다면 로그아웃은 쉽게 구현할 수 있다. 쿠키를 삭제해 주면 브라우저에 토큰이 사라지므로 더이상 서버에서 유저를 확인할 방법이 없어진다. 로그인이 된 경우는 ejs파일에서만 다루므로 ejs파일에 아래처럼 로그아웃 버튼을 만든다. onclick으로 signOut()함수를 실행하게 만들어준다. 함수의 내용은 아래와 같다. 별거 없이 그냥 해당 미들웨어를 호출한... JWTajaxnode jscookiesJWT TDD(test driven development) 저는 코드로부터 예상 혹은 기대되는 내용을 테스트코드에 규약처럼 작성하여 개발코드를 작성하는 과정이 규약에 어긋나지 않도록 함과 동시에 각 라우터 마다의 api 호출을 통한 테스트 과정을 생략하기 위해 사용하는 것으로 받아들였습니다. 이 때 검사를 위해 사용되는 모듈이 크게 두 가지, assert 와 should가 있습니다. 테스트 코드 작성에서는 웬만하면 should를 사용하는 것이 좋다고... TDDnode jsTDD 기타 현업 예를들어 dynamoDB에 데이터를 추가, 삭제, 편집, 쿼리, 읽기 등의 작업을 하고 싶다면(자세한 파일 구조와 로직은 적을 수 없다. 클라이언트의 요청은 백엔드 서버 → 저장소(DB 등) 요청으로 이어지는데 실제 DB까지 방문 후 데이터를 긁어와 클라이언트에게 내려주는 과정은 시간상 비효율적. CPU는 기본적으로 메모리에 저장된 데이터를 가져와 일을 처리하는데 이 때 CPU - 메모리(저... servernode jsnode js [Node JS] #2. Make Server 항상 켜져 있는 인터넷과 연결 되어있는 컴퓨터 Request 를 listening Ex) 카톡 메시지, 영상 클릭, URL 방문 등 외부 접속 listen CallBack: 서버가 시작할 때 작동하는 함수 Port: 컴퓨터의 문이나 창문 같은 것 유저가 서버에 접근하는 법: localhost(port-4000) GET: HTTP method /: root Request: 유저의 행동에 브라우... node jsnode js Mocha and Chai 테스트 관련 패키지는 개발할 때만 필요하므로 --save-dev 옵션을 사용한다. npm i axios npm i --save-dev mocha chai nyc sinon sinon-chai mocha는 테스트 실행해주는 패키지다 chai는 assertion 패키지다 nyc는 코드 커버리지를 시각적으로 보여주는 패키지다 axios는 promise 기반 HTTP client다. sinon-ch... testTDDmochabddaxioschainode jsnycTDD [Node JS] # File Upload Html multer 적용 Middleware 정의 - router에서 middleware 사용: html에서 받아온 file을 middleware에서 정한 설정에 따라 uploads 폴더에 저장한 후 다음 middleware로 file 정보를 전달 (req.file 이용) DB 및 세션에 저장 Static files serving (img 파일 등을 브라우저에 노출) ++) 문제 – 서버에... node jsnode js [Node JS] #5.2 Database model을 만드는 이유 mongoose에게 data가 어떻게 생겼는지 전달해야함. mongoose는 그 틀을 바탕으로 object의 틀을 강제함. model은 object의 model이 됨. shape는 보통 스키마라고 부름. 사용법: 스키마 정의 - mongoose.model 정의, export-import, CRUD = create, read, update, delete 데이터를 생성하... node jsnode js 10월 21일 TIL JavaScript가 브라우저가 아닌곳에서 실행될 수 있으니, 이제 우리는 JavaScript를 이용해서 웹페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있습니다. 이제 우리는 우리가 쓴 JavaScript 코드를 브라우저에서 실행시킬수도 있고, node.js라는 환경에서 실행시킬수도 있습니다.HTML <script> 태그 내에 JavaScript 코드를 작성한다면 우리가 작성한 ... nvmnode jspackge.jsonTILTIL